feat: implement comprehensive API versioning strategy#399
Merged
Xhristin3 merged 4 commits intorinafcode:mainfrom Apr 28, 2026
Merged
feat: implement comprehensive API versioning strategy#399Xhristin3 merged 4 commits intorinafcode:mainfrom
Xhristin3 merged 4 commits intorinafcode:mainfrom
Conversation
- Enforce semantic versioning: new version must be strictly greater than current - Record version upgrade history on every set_interface_versions call - Add is_backward_compatible() helper (same major, to >= from) - Add deprecation policy: deprecate_function(), get_deprecation(), get_all_deprecations(), get_deprecation_policy() - Validates removal_in > deprecated_in - Admin-only write, open read - Add migration paths: register_migration_path(), get_migration_path(), get_all_migration_paths() - Documents breaking changes and ordered migration steps per version pair - Encoded as compact u128 key for storage efficiency - Add DeprecatedFunction, DeprecationPolicy, MigrationPath types to types.rs - Wire 9 new public entry points into lib.rs
|
@Just-Bamford Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
Contributor
Author
|
@Xhristin3 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Extends the existing
InterfaceVersioningmodule with a full API versioningstrategy covering semantic versioning enforcement, backward compatibility
checks, a deprecation policy registry, and migration path documentation.
this pr Closes #270
Changes
Semantic Versioning
set_interface_versionsnow enforces new version must be strictly greaterthan current (no downgrades)
get_version_historyBackward Compatibility
is_backward_compatible(from, to)— returns true if same major and to >= fromDeprecation Policy
deprecate_function— admin registers a function as deprecated withdeprecated_in,removal_in, optional replacement, and reasonget_deprecation— query deprecation info for any functionget_deprecation_policy— returns current version + all deprecated functionsMigration Paths
register_migration_path— admin documents breaking changes and orderedmigration steps between any two versions
get_migration_path— retrieve path for a specific version pairget_all_migration_paths— list all registered pathsNew Types
DeprecatedFunction,DeprecationPolicy,MigrationPathAcceptance Criteria
Base
rinafcode/teachLink_contract:main